<!DOCTYPE html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    
    <title>My New Hugo Site</title>
    <meta name="viewport" content="width=device-width,minimum-scale=1">
    <meta name="generator" content="Hugo 0.75.1" />
    
    
      <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
    

    
    
      <link href="/dist/css/app.4fc0b62e4b82c997bb0041217cd6b979.css" rel="stylesheet">
    

    

    
      

    

    
    
      <link href="/post/index.xml" rel="alternate" type="application/rss+xml" title="My New Hugo Site" />
      <link href="/post/index.xml" rel="feed" type="application/rss+xml" title="My New Hugo Site" />
      
    
    
    <meta property="og:title" content="Posts" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://yanx57.gitee.io/post/" />

<meta itemprop="name" content="Posts">
<meta itemprop="description" content="">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Posts"/>
<meta name="twitter:description" content=""/>

	
  </head>

  <body class="ma0 avenir bg-near-white">

    

  <header>
    <div class="pb3-m pb6-l bg-black">
      <nav class="pv3 ph3 ph4-ns" role="navigation">
  <div class="flex-l justify-between items-center center">
    <a href="/" class="f3 fw2 hover-white no-underline white-90 dib">
      
        My New Hugo Site
      
    </a>
    <div class="flex-l items-center">
      

      
      















    </div>
  </div>
</nav>

      <div class="tc-l pv3 ph3 ph4-ns">
        <h1 class="f2 f-subheadline-l fw2 light-silver mb0 lh-title">
          Posts
        </h1>
        
      </div>
    </div>
  </header>


    <main class="pb7" role="main">
      

  <article class="pa3 pa4-ns nested-copy-line-height nested-img">
    <section class="cf ph3 ph5-l pv3 pv4-l f4 tc-l center measure-wide lh-copy mid-gray">
      
    </section>
    <aside class="flex-ns flex-wrap justify-around mt5">
      
        <div class="relative w-100 w-30-l mb4 bg-white">
          
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
    <h1 class="f3 near-black">
      <a href="https://yanx57.gitee.io/post/1/" class="link black dim">
        
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      牧师与魔鬼 开发心得以及设计技巧：
怎么让游戏结束之后只能点击重新开始按钮而不能响应让人物移动和让船体移动的鼠标点击事件：
我上网查找了 c# 中禁止点击事件的方法，没有找到好方法，于是我决定修改这两个点击事件的代码内容，但是其实点击船体让船体移动到指定位置不是一个函数完成的，这个点击事件涉及到了多个类，问题在于修改哪一个类以及怎么修改？其实这个问题可以从什么时候要禁止点击事件发生这个角度来思考，没错，就是游戏结束，在 UserGUI中，我们定义了一个变量status来表示游戏状态，status = 0表示游戏未结束，因此，我们可以在 FirstController中定义一个 UserGUI userGUI的实例，并在移动人物和移动船体的函数中判断userGUI.status 是否等于0，若不为0，则直接renturn
怎么实现多线程同步问题？
C# 是多线程并发，也即是说，点击一个人物立刻点击船体，这时移动人物和移动船体是两个线程在并发进行，这是游戏bug，我们要让人物移动和船体移动，人物移动和人物移动线程之间做到同步，所有的线程需要能够访问到同一个互斥锁，才能实现同步，于是我们可以仿照 Director 类的想法来实现通信的目的: 设计一个类 Lock， 这个类只能有一个实例，这样我们可以在 FirstController中定义一个Lock类的实例，并通过其中的方法来获得以及设计互斥锁的状态来达到实现同步的效果。
public class Lock { private static Lock OnlyInstance; public static int synLock; public static Lock getInstance() { if (OnlyInstance == null) { OnlyInstance = new Lock(); } return OnlyInstance; } public Lock() { synLock = 1; } public int getLock() { return synLock; } public void setLock(int ll) { synLock = ll; } } 
    </div>
  </div>

        </div>
      
    </aside>
    


  </article>

    </main>
    <footer class="bg-black bottom-0 w-100 pa3" role="contentinfo">
  <div class="flex justify-between">
  <a class="f4 fw4 hover-white no-underline white-70 dn dib-ns pv2 ph3" href="https://yanx57.gitee.io/" >
    &copy;  My New Hugo Site 2021 
  </a>
    <div>














</div>
  </div>
</footer>

    

  <script src="/dist/js/app.3fc0f988d21662902933.js"></script>


  </body>
</html>
